home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #6 / Amiga Plus CD - 2004 - No. 06.iso / AmigaPlus / Begleitmaterial / 50Tools / Grafik / PerfectPaint / rexx / box / Funny_Border.rx < prev    next >
Text File  |  2002-08-20  |  4KB  |  246 lines

  1. /* Box arexx V1.1*/
  2.  
  3.     options results
  4.   parse ARG Port x1 y1 x2 y2 b
  5.     ADDRESS value Port
  6.  
  7.     ADDRESS COMMAND
  8.     type=0
  9.     if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Funny_Border') THEN DO
  10.         IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Funny_Border', "R") then DO
  11.             type = READLN('lfile')
  12.             CALL CLOSE('lfile')
  13.         END
  14.     END
  15.  
  16.     ADDRESS value Port
  17.  
  18.     pp_DialogInit 250 60 "*Funny*Border*" 1
  19.         pp_Cycle 0 50 8 170 16 "Type" 1 "Dog*Ear|Rabbit*Ear|Rounded*Box|Filled*Rounded*Box|Old*Style|Light*Effect|Shade*Effect" type
  20.     pp_Dialog
  21.     rc=result
  22.     if rc=0 then
  23.         do
  24.             EXIT
  25.         end        
  26.  
  27.     pp_GetDialog 0
  28.     type=result
  29.  
  30.     CALL SavePrefs('Funny_Border',type)
  31.     ADDRESS value Port
  32.  
  33.     pp_updateUndo
  34.  
  35. if type=0 then DO
  36.     xb=trunc(((abs(x1-x2)+1)*10)/100);yb=trunc(((abs(y1-y2)+1)*10)/100)
  37.     ab=xb
  38.     if xb>yb then
  39.     do
  40.     ab=yb
  41.     end
  42.     pp_startpoly
  43.     pp_addpoly x1 y1+ab
  44.     pp_addpoly x1+ab y1
  45.     pp_addpoly x2-ab y1
  46.     pp_addpoly x2 y1+ab
  47.     pp_addpoly x2 y2-ab
  48.     pp_addpoly x2-ab y2
  49.     pp_addpoly x1+ab y2
  50.     pp_addpoly x1 y2-ab
  51.     pp_addpoly x1 y1+ab
  52.     pp_endpoly
  53. END
  54.  
  55. if type=1 then DO
  56.     xb=trunc(((abs(x1-x2)+1)*10)/100)
  57.     yb=trunc(((abs(y1-y2)+1)*10)/100)
  58.     ab=xb
  59.     if xb>yb then
  60.     do
  61.         ab=yb
  62.     end
  63.     pp_line x1+ab y1 x2-ab y1
  64.     pp_line x2 y1+ab x2 y2-ab
  65.     pp_line x2-ab y2 x1+ab y2
  66.     pp_line x1 y2-ab x1 y1+ab
  67.   
  68.     pp_spline x1 y1+ab x1+ab y1 x1 y1
  69.     pp_spline x2-ab y1 x2 y1+ab x2 y1
  70.     pp_spline x2 y2-ab x2-ab y2 x2 y2
  71.     pp_spline x1+ab y2 x1 y2-ab x1 y2
  72. END
  73.  
  74. if type=2 then DO
  75.     xb=trunc(((abs(x1-x2)+1)*10)/100)
  76.     yb=trunc(((abs(y1-y2)+1)*10)/100)
  77.     ab=xb
  78.     if xb>yb then
  79.     do
  80.         ab=yb
  81.     end
  82.     ab2=trunc(ab/3)
  83.  
  84.     pp_line x1+ab y1 x2-ab y1
  85.     pp_line x2 y1+ab x2 y2-ab
  86.     pp_line x2-ab y2 x1+ab y2
  87.     pp_line x1 y2-ab x1 y1+ab  
  88.  
  89.     pp_spline x1 y1+ab x1+ab y1 x1+ab2 y1+ab2
  90.     pp_spline x2-ab y1 x2 y1+ab x2-ab2 y1+ab2
  91.     pp_spline x2 y2-ab x2-ab y2 x2-ab2 y2-ab2
  92.     pp_spline x1+ab y2 x1 y2-ab x1+ab2 y2-ab2
  93. END
  94.  
  95. if type=3 then DO
  96.     xb=trunc(((abs(x1-x2)+1)*20)/100)
  97.     yb=trunc(((abs(y1-y2)+1)*20)/100)
  98.     ab=xb
  99.     if xb>yb then
  100.     do
  101.         ab=yb
  102.     end
  103.     ab2=trunc(ab/3)
  104.  
  105.     pp_StartPoly
  106.     
  107.     pp_addpoly (x2+x1)/2 y1
  108.  
  109.     pp_addpoly x2-ab y1
  110.     pp_addpoly x2-ab2 y1+ab2
  111.     pp_addpoly x2 y1+ab
  112.  
  113.     pp_addpoly x2 (y1+y2)/2    
  114.  
  115.     pp_addpoly x2 y2-ab
  116.     pp_addpoly x2-ab2 y2-ab2
  117.     pp_addpoly x2-ab y2
  118.  
  119.     pp_addpoly (x2+x1)/2 y2
  120.     
  121.     pp_addpoly x1+ab y2
  122.     pp_addpoly x1+ab2 y2-ab2
  123.     pp_addpoly x1 y2-ab
  124.  
  125.     pp_addpoly x1 (y2+y1)/2
  126.  
  127.     pp_addpoly x1 y1+ab
  128.     pp_addpoly x1+ab2 y1+ab2
  129.     pp_addpoly x1+ab y1
  130.     pp_EndPolySF
  131.  
  132. /*
  133. pp_StartPoly
  134. pp_addpoly x1+ab y1
  135. pp_addpoly x2-ab y1
  136. pp_addpoly x2-ab y1
  137. pp_addpoly x2-ab2 y1+ab2
  138. pp_addpoly x2 y1+ab
  139. pp_addpoly x2 y1+ab
  140. pp_addpoly x2 y2-ab
  141. pp_addpoly x2 y2-ab
  142. pp_addpoly x2-ab2 y2-ab2
  143. pp_addpoly x2-ab y2
  144. pp_addpoly x2-ab y2
  145. pp_addpoly x1+ab y2
  146. pp_addpoly x1+ab y2
  147. pp_addpoly x1+ab2 y2-ab2
  148. pp_addpoly x1 y2-ab
  149. pp_addpoly x1 y2-ab
  150. pp_addpoly x1 y1+ab
  151. pp_addpoly x1 y1+ab
  152. pp_addpoly x1+ab2 y1+ab2
  153. pp_addpoly x1+ab y1 
  154. pp_EndPolyS
  155. */
  156.  
  157. END
  158.  
  159. if type=4 then DO
  160.     xb=trunc(((abs(x1-x2)+1)*20)/100)
  161.     yb=trunc(((abs(y1-y2)+1)*20)/100)
  162.     ab=xb
  163.     if xb>yb then
  164.     do
  165.         ab=yb
  166.     end
  167.     ac=trunc(ab/2)
  168.     pp_STARTpoly
  169.     pp_ADDpoly x1 y1
  170.     pp_ADDpoly x1+ac y1
  171.     pp_ADDpoly x1+ac y1+ab
  172.     pp_ADDpoly x1 y1+ab
  173.     pp_ADDpoly x1 y2-ab
  174.     pp_ADDpoly x1+ac y2-ab
  175.     pp_ADDpoly x1+ac y2
  176.     pp_ADDpoly x1 y2
  177.     pp_ADDpoly x1 y2-ac
  178.     pp_ADDpoly x1+ab y2-ac
  179.     pp_ADDpoly x1+ab y2
  180.     pp_ADDpoly x2-ab y2
  181.     pp_ADDpoly x2-ab y2-ac
  182.     pp_ADDpoly x2 y2-ac
  183.     pp_ADDpoly x2 y2
  184.     pp_ADDpoly x2-ac y2
  185.     pp_ADDpoly x2-ac y2-ab
  186.     pp_ADDpoly x2 y2-ab
  187.     pp_ADDpoly x2 y1+ab
  188.     pp_ADDpoly x2-ac y1+ab
  189.     pp_ADDpoly x2-ac y1
  190.     pp_ADDpoly x2 y1
  191.     pp_ADDpoly x2 y1+ac
  192.     pp_ADDpoly x2-ab y1+ac
  193.     pp_ADDpoly x2-ab y1
  194.     pp_ADDpoly x1+ab y1
  195.     pp_ADDpoly x1+ab y1+ac
  196.     pp_ADDpoly x1 y1+ac
  197.     pp_ADDpoly x1 y1
  198.     pp_ENDpoly
  199. END
  200.  
  201. if type=5 then DO
  202.     pp_PenType 0
  203.     PP_EffectOn
  204.     j=0
  205.     do i=90 to 10 by -10
  206.         pp_Light i
  207.         pp_Box x1+j y1+j x2-j y2-j
  208.         j=j+1
  209.     end
  210.     pp_EffectOff
  211. END
  212.  
  213. if type=6 then DO
  214.     pp_PenType 0
  215.     PP_EffectOn
  216.     j=0
  217.     do i=90 to 10 by -10
  218.         pp_Shade i
  219.         pp_Box x1+j y1+j x2-j y2-j
  220.         j=j+1
  221.     end
  222.     pp_EffectOff
  223. END
  224.  
  225. EXIT
  226.  
  227. SavePrefs: PROCEDURE
  228.     
  229.     Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
  230.  
  231.     if EXISTS(Prefname) THEN DO
  232.         ADDRESS COMMAND
  233.         'delete >nil: '||Prefname
  234.     END
  235.  
  236.     IF OPEN('pfile',PrefName,'W') THEN DO
  237.  
  238.     do i=2 to ARG()
  239.         CALL WRITELN('pfile',ARG(i))
  240.     end
  241.  
  242.     CALL CLOSE('pfile')
  243.  
  244. RETURN
  245.  
  246.